package leetcode; /**
 * description:
 * author:张腾
 * date:2021-07-21
 */

import java.util.Arrays;

/**
 * 给你一个区间列表，请你删除列表中被其他区间所覆盖的区间。
 *
 * 只有当c <= a且b <= d时，我们才认为区间[a,b) 被区间[c,d) 覆盖。
 *
 * 在完成所有删除操作后，请你返回列表中剩余区间的数目。
 */
public class leetcode1288 {
    public int removeCoveredIntervals(int[][] intervals) {
        Arrays.sort(intervals, (a,b)->{
            if (a[0]==b[0]) return b[1]-a[1];
            return a[0]-b[0];
        });
        int left = intervals[0][0];
        int right = intervals[0][1];

        int res = 0;
        for (int i = 0; i < intervals.length; i++) {
            //每一行[x,x]
            int[] interval = intervals[i];
            if (left<=interval[0] && right>=interval[1]) res ++;
            else if (right>=interval[0] && right<=interval[1]) right = interval[1];
            else if (right<interval[0]) {
                left = interval[0];
                right = interval[1];
            }
        }
        return res;
    }
}
